﻿//异步编程 std::async
//功能:异步执行函数，并返回 future 获取结果。
#include <iostream>
#include <future>
#include <chrono>
#include <thread>  // 加上这一行，解决 sleep_for 报错
// 一个模拟耗时计算的函数
int compute() {
    std::this_thread::sleep_for(std::chrono::seconds(2));  // 睡眠 2 秒
    return 42;
}
int main() {
    // 启动一个异步任务，compute 在后台执行
    std::future<int> result = std::async(std::launch::async, compute);
    std::cout << "Waiting for result..." << std::endl;
    // 阻塞等待任务结束，并获取结果
    std::cout << "Result: " << result.get() << std::endl;
    return 0;
}
/*
 * 技术点	说明
std::async	启动异步任务，可自动创建新线程
std::future<T>	异步任务结果的容器，可延迟获取
result.get()	获取结果，必要时阻塞直到任务完成
std::this_thread::sleep_for	当前线程休眠一段时间，用于模拟耗时或限速操作
#include <future>	必须包含，提供 async、future 等
#include <chrono>	提供时间单位（如秒、毫秒）
#include <thread>	提供 sleep_for 和线程管理相关
 *
 * */

